package rtda.heap;

import lombok.Data;

import java.util.ArrayList;
import java.util.List;

@Data
public class KObject implements Cloneable {
    // 属性
    public final List<KField> fields;

    // 类对象
    public final KClass clazz;

    //父类
    private KObject superObject;

    // 元类 类对象的对象 通过Metaclass使程序可以在运行时修改/添加类的方法、属性等
    private KClass metaClass;

    // 一些额外的东西
    private Object extra;

    public KObject(KClass clazz) {
        fields = new ArrayList<>();
        this.clazz = clazz;
    }
}
